attribute vec3 a_VertPosition;
attribute vec2 a_VertTexCoord;
attribute vec3 a_VertNorm;
attribute vec3 a_VertBiNorm;
attribute vec3 a_VertTangent;

uniform mat4 u_WVPMatrix;
uniform mat4 u_WMatrix;

varying vec3 v_VertPosition;
varying vec2 v_VertTexCoord;
varying vec3 v_VertNorm;
varying vec3 v_VertBiNorm;
varying vec3 v_VertTangent;

void main()
{
	gl_Position = u_WVPMatrix * vec4(a_VertPosition, 1.0);
	
	v_VertPosition = (u_WMatrix * vec4(a_VertPosition, 1.0)).xyz;
	v_VertNorm = normalize((u_WMatrix * vec4(a_VertNorm, 0.0)).xyz);
	v_VertBiNorm = normalize((u_WMatrix * vec4(a_VertBiNorm, 0.0)).xyz);
	v_VertTangent = normalize((u_WMatrix * vec4(a_VertTangent, 0.0)).xyz);
	v_VertTexCoord = a_VertTexCoord;
}